/* data */
import AllotMapDialogData from '@src/modules/task/taskTypes/allot/components/AllotMapDialog/AllotMapDialogData'
/* enum */
import StorageKeyEnum from '@model/enum/StorageKeyEnum'
/* entity */
import EsTask from '@model/entity/EsTask'
/* service */
import { allowModifyPlanTimeJudgeHandler } from '@service/TaskService'
/* util */
import { storageGet } from '@src/util/storage.js'

class AllotMapDialogComputed extends AllotMapDialogData {
  
  /** 
   * @description 工单信息中计划时间是否可以修改
   * 1. 非暂停状态且且非审批状态
  */
  get allowModifyPlanTime(): boolean {    
    return allowModifyPlanTimeJudgeHandler(this.currentSelectedMarkTask.data)
  }
  
  /**
   * @description 是否开通呼叫中心模块
   * @return {Boolean}
   */  
  get hasCallCenterModule(): boolean {
    return storageGet(StorageKeyEnum.CallCenterModule, false) == 1
  }
  
  /**
   * @description 当前选中的地图工单数据
   * @return {EsTask[]} 选中的地图工单数据
   */  
  get selectedTaskMapData(): EsTask[] {
    return this.taskMapData.filter(task => task.selected)
  }

  /**
   * @description 有经纬度的工单数据
   */  
  get hasLatLngData(): EsTask[] {
    return this.taskMapData.filter((task: EsTask) => task?.address?.latitude && task?.address?.longitude)
  }
  
  /**
   * @description 当前选中的地图工单id数据
   * @return {EsTask[]} 选中的地图工单id数据
   */  
  get selectedTaskIds(): string[] {
    return this.selectedTaskMapData.map(task => task.id)
  }
}

export default AllotMapDialogComputed
